package com.angel.core.util;

import java.io.InputStream;

import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.pdmodel.PDDocument;
import org.pdfbox.util.PDFTextStripper;

public class RemotePDFUtils {

	/**
	 * 读取PDF文件的文字内容
	 * 
	 * @param pdfPath
	 *            读取文件路径
	 * @param sort
	 *            是否排序
	 * @return
	 * @throws Exception
	 */
	public static String getTextFromPdf(InputStream is, boolean sort) throws Exception {
		// 开始提取页数
		int startPage = 1;
		// 结束提取页数
		int endPage = Integer.MAX_VALUE;

		String content = null;
		PDDocument document = null;
		try {
			PDFParser parser = new PDFParser(is);// 新建PDF解析器对象
			parser.parse(); // 对PDF文件进行解析
			document = parser.getPDDocument();// 获取解析后得到的PDF文档对象
			PDFTextStripper pts = new PDFTextStripper(); // 新建PDF文本剥离器
			pts.setSortByPosition(sort);
			endPage = document.getNumberOfPages();
			pts.setStartPage(startPage);
			pts.setEndPage(endPage);	
			try {
				content = pts.getText(document);// 从PDF文档对象中剥离文本
			} catch (Exception e) {
				throw e;
			}
		} catch (Exception e) {
			throw e;
		} finally {
			if (null != document)
				document.close();
		}

		return content;
	}
	/*public static String getTextFromPdf(String pdfPath, boolean sort) throws Exception {
		// 开始提取页数
		int startPage = 1;
		// 结束提取页数
		int endPage = Integer.MAX_VALUE;

		String content = null;
		InputStream input = null;
		File pdfFile = new File(pdfPath);
		PDDocument document = null;
		try {
			input = new FileInputStream(pdfFile);// 创建文件输入流
			PDFParser parser = new PDFParser(input);// 新建PDF解析器对象
			parser.parse(); // 对PDF文件进行解析
			document = parser.getPDDocument();// 获取解析后得到的PDF文档对象
			PDFTextStripper pts = new PDFTextStripper(); // 新建PDF文本剥离器
			pts.setSortByPosition(sort);
			endPage = document.getNumberOfPages();
			pts.setStartPage(startPage);
			pts.setEndPage(endPage);
			try {
				content = pts.getText(document);// 从PDF文档对象中剥离文本
			} catch (Exception e) {
				throw e;
			}
		} catch (Exception e) {
			throw e;
		} finally {
			if (null != input)
				input.close();
			if (null != document)
				document.close();
		}

		return content;
	}*/
	/*public static void main(String[] args) {
        String pdfName = "E:\\最新angel/陈祥君.pdf";
        try {
        	String pdfAbove = getTextFromPdf(pdfName,false);
        	PDFEntity parsingAbove = ParsingPdf.parsingAbove(pdfAbove);
        	//解析下面体检结果  汇总分析、温馨提示  总检意见
			String pdfBelow = getTextFromPdf(pdfName,true);
			 Map<String, Object> parsingBelow = ParsingPdf.parsingBelow(pdfBelow);//体检结果
			 Map<String, Object> parsingTop = ParsingPdf.parsingTop(pdfBelow);//汇总分析、温馨提示  总检意见
			 parsingBelow.put("基础信息", parsingAbove);
			 parsingBelow.put("健康部分", parsingTop);
			 System.err.println(JsonUtil.toJson(parsingBelow));
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

    }*/
}